package queue;

public class Fila {

	// variaveis globais
	int inicio, fim, numelem, tamanho;
	// array a ser manipulado - fila
	Object array[];

	// construtor
	Fila(int tam) {
		this.inicio = 0;
		this.fim = 0;
		this.numelem = 0;
		this.tamanho = tam;
		this.array = new Object[tam];
	}

	// default
	Fila() {
	}

	
	public boolean vazia() {
		if (numelem == 0)
			return true;
		return false;
	}

	public boolean cheia() {
		if (numelem == tamanho)
			return true;
		return false;
	}

	public void inserir(Object elem) {
		if (!cheia()) {
			array[fim] = elem;
			numelem++;
			fim++;
			if (fim == tamanho)
				fim = 0;
		} else
			System.out.println("Fila Cheia");
	}

	public Object remover() {
		Object temp = null;
		if (!vazia()) {
			temp = array[inicio];
			array[inicio] = null;
			inicio++;
			numelem--;
			if (inicio == tamanho)
				inicio = 0;
		} else
			System.out.println("Fila vazia");
		return temp;
	}

}